(kbd_buffer_get_event): Return Qnil when current time is exactly equal to
authorEli Zaretskii <eliz@gnu.org>
Sat, 5 Aug 2006 11:59:50 +0000 (11:59 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sat, 5 Aug 2006 11:59:50 +0000 (11:59 +0000)
end_time, not only when it is past that.

src/keyboard.c

index a4e1c98c0139a8d72fb402cc0e5b624f90a2a55a..6f12994a1b8854e5bdabffbcf3471434df090732 100644 (file)
@@ -3954,13 +3954,15 @@ kbd_buffer_get_event (kbp, used_mouse_menu, end_time)
        {
          EMACS_TIME duration;
          EMACS_GET_TIME (duration);
-         EMACS_SUB_TIME (duration, *end_time, duration);
-         if (EMACS_TIME_NEG_P (duration))
-           return Qnil;
+         if (EMACS_TIME_GE (duration, *end_time))
+           return Qnil;        /* finished waiting */
          else
-           wait_reading_process_output (EMACS_SECS (duration),
-                                        EMACS_USECS (duration), 
-                                        -1, 1, Qnil, NULL, 0);
+           {
+             EMACS_SUB_TIME (duration, *end_time, duration);
+             wait_reading_process_output (EMACS_SECS (duration),
+                                          EMACS_USECS (duration),
+                                          -1, 1, Qnil, NULL, 0);
+           }
        }
       else
        wait_reading_process_output (0, 0, -1, 1, Qnil, NULL, 0);